import * as XLSX from "xlsx";
import { saveAs } from "file-saver";

export const exportToExcel = (data, fileName, widths = []) => {
  // 将数据转换为工作表
  const worksheet = XLSX.utils.json_to_sheet(data);

  // 创建工作簿并添加工作表
  const workbook = XLSX.utils.book_new();
  XLSX.utils.book_append_sheet(workbook, worksheet, "Sheet1");

  // 如果需要为所有行设置默认行高，可以遍历数据并设置
  data.forEach((_, rowIndex) => {
    worksheet["!rows"] ? (worksheet["!rows"][rowIndex] = { hpx: 20 }) : null; // 设置每一行的行高
  });

  // 设置列宽，例如设置第一列的宽度为30
  worksheet["!cols"] = widths || [
    { wch: 30 }, // 第一个参数是列的索引（从0开始），wch是列宽
    // 你可以继续添加其他列宽的设置
  ];

  // 生成Excel文件
  const excelBuffer = XLSX.write(workbook, { bookType: "xlsx", type: "array" });

  // 将Excel文件保存到客户端
  const dataBlob = new Blob([excelBuffer], {
    type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8",
  });
  saveAs(dataBlob, fileName + ".xlsx");
};
